#include "configLogic.h"

// get与set方法
// set
void setState(u8 state);
void setTemp(u8 temp);
void sethumi(u8 humi);
void setsomke(u8 somke);
void setSunshine(u8 sunshine);

// get
u8 getState();
u8 getTemp();
u8 gethumi();
u8 getsomke();
u8 getSunshine();

// 把数据存入EEPROM中
void saveTHDataEEPROM(THData data);

// 配置逻辑
void config_THData_Logic(char *data)
{
    // 声明THData对象
    THData thdata;

    // 解析消息
    parseMsgData(&thdata, data);

    // 把消息设置到THData中去
    setTHData(thdata);

    // 消息存入到本地EEPROM中
    saveTHDataEEPROM(thdata);
}

// 网络配置逻辑
void config_network_Logic(char *data){}

// 把数据存入EEPROM中
void saveTHDataEEPROM(THData data)
{
    // 做检查
    if (AT24CXX_Check()) return;
    // 保存数据
    setState(data.state);
    setTemp(data.temp);
    sethumi(data.humi);
    setsomke(data.somke);
    setSunshine(data.sunshine);
}

// 加载THData
int loadTHData(THData *data)
{
    // 做检查
    if (AT24CXX_Check()) return 0;
    // 获取数据
    data->state = getState();
    data->temp = getTemp();
    data->humi = gethumi();
    data->somke = getsomke();
    data->sunshine = getSunshine();
    return 1;
}

// get与set方法实现
// set
void setState(u8 state){ AT24CXX_WriteOneByte(0, state); }
void setTemp(u8 temp){ AT24CXX_WriteOneByte(1, temp); }
void sethumi(u8 humi){ AT24CXX_WriteOneByte(2, humi); }
void setsomke(u8 somke){ AT24CXX_WriteOneByte(3, somke); }
void setSunshine(u8 sunshine){ AT24CXX_WriteOneByte(4, sunshine); }

// get
u8 getState(){ return AT24CXX_ReadOneByte(0); }
u8 getTemp(){ return AT24CXX_ReadOneByte(1); }
u8 gethumi(){ return AT24CXX_ReadOneByte(2); }
u8 getsomke(){ return AT24CXX_ReadOneByte(3); }
u8 getSunshine(){ return AT24CXX_ReadOneByte(4); }

